﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dataweb.NShape.Advanced;
using cz.zcu.PreSti.Shapes;
using Dataweb.NShape;

namespace cz.zcu.PreSti.Guide
{
    /// <summary>
    /// Provides the store for saving models information.
    /// </summary>
    public class TemplatesShape
    {
        private Shape shape;
        private ModelObjectBase model;
        private String type;
        private int probability = 0;

        /// <summary>
        /// Initializes a new instance of the <see cref="TemplatesShape"/> class.
        /// </summary>
        /// <param name="shape">The shape.</param>
        /// <param name="model">The model.</param>
        /// <param name="type">The type.</param>
        public TemplatesShape(Shape shape, ModelObjectBase model, String type)
        {
            this.Shape = shape;
            this.Model = model;
            this.Type = type;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="TemplatesShape"/> class.
        /// </summary>
        /// <param name="shape">The shape.</param>
        /// <param name="type">The type.</param>
        public TemplatesShape(Shape shape, String type)
        {
            this.Shape = shape;
            this.Model = null;
            this.Type = type;
        }

        /// <summary>
        /// Gets or sets the shape.
        /// </summary>
        /// <value>
        /// The shape.
        /// </value>
        public Shape Shape
        {
            get { return shape; }
            set { shape = value; }
        }

        /// <summary>
        /// Gets or sets the model.
        /// </summary>
        /// <value>
        /// The model.
        /// </value>
        public ModelObjectBase Model
        {
            get { return model; }
            set { model = value; }
        }

        /// <summary>
        /// Gets or sets the type.
        /// </summary>
        /// <value>
        /// The type.
        /// </value>
        public String Type
        {
            get { return type; }
            set { type = value; }
        }

        /// <summary>
        /// Gets or sets the probability.
        /// </summary>
        /// <value>
        /// The probability.
        /// </value>
        public int Probability
        {
            get { return probability; }
            set { probability = value; }
        }

    }
}
